1
Plantas para Código Genérico
AI037Lesson 18
00:00

Imagine que você é um arquiteto. Em vez de desenhar um plano fixo para uma única casa de tijolos, você cria um modelo mestre planta capaz de se adaptar a madeira, aço ou vidro. No C++, isso é Programação Genérica.

1. O Mecanismo da Planta

Uma lista de parâmetros de template (por exemplo, template <typename T>) introduz espaços reservados chamados parâmetros de tipo de template. Estes atuam como variáveis para tipos. Por exemplo, em template <typename T> ostream &print(ostream &os, const T &obj), T é determinado apenas quando a função é chamada.

2. Instanciação

O compilador não compila o template em si em código de máquina. Em vez disso, instanciação ocorre: o compilador gera uma versão específica do código apenas quando um argumento de template é fornecido. Por causa disso, as definições normalmente devem residir em arquivos de cabeçalho.

Plantacompare<T>compare(int)compare(vector)Erro: Sales_data

3. Escrevendo Código Independente de Tipo

Para maximizar a reutilização, siga a Melhor Prática: minimize requisitos. Escrever o código usando apenas o < operador (via less<T>) reduz os requisitos sobre os tipos em comparação com o uso de >, <=, e >=. A validação muitas vezes é adiada; o compilador geralmente não consegue encontrar muitos erros na fase de compilação do próprio template; a maioria aparece durante a instanciação.

main.py
TERMINALbash — 80x24
> Ready. Click "Run" to execute.
>